﻿Imports System.IO

Public Class ClaseUsuario : Implements IEquatable(Of ClaseUsuario)


    Private Property _Nick As String
    Private Property _Contraseña As String
    Private Property _Puntuaciones As New List(Of Integer)


    Public Sub New()

    End Sub

    Public Sub New(ByVal NombreUsuario As String, ByVal ContaseñaUsuario As String, ByVal Punt1 As Integer, ByVal Punt2 As Integer, ByVal Punt3 As Integer, ByVal Punt4 As Integer)
        _Nick = NombreUsuario
        _Contraseña = ContaseñaUsuario
        _Puntuaciones.Add(Punt1)
        _Puntuaciones.Add(Punt2)
        _Puntuaciones.Add(Punt3)
        _Puntuaciones.Add(Punt4)
    End Sub

    Public ReadOnly Property LeerUsuarios As ObjectModel.ReadOnlyCollection(Of Integer)
        Get
            Return _Puntuaciones.AsReadOnly
        End Get
    End Property

    Public Sub AñadirPuntuaciones(ByVal NumeroDeJuego As Integer, ByVal NumeroPuntos As Integer)
        _Puntuaciones(NumeroDeJuego) = NumeroPuntos
    End Sub


    Public Property Nick As String
        Get
            Return _Nick
        End Get
        Set(ByVal value As String)
            If value = Nothing Then
                _Nick = "Sin Nombre"
            Else
                _Nick = value
            End If
        End Set
    End Property


    Public Property Contraseña As String
        Get
            Return _Contraseña
        End Get
        Set(ByVal value As String)
            If value = Nothing Then
                _Contraseña = "SinContraseña"
            Else
                _Contraseña = value
            End If
        End Set
    End Property

    Public Overloads Function Equals(ByVal other As ClaseUsuario) As Boolean Implements System.IEquatable(Of ClaseUsuario).Equals
        Return Equals(Me, other)
    End Function


    Public Overloads Shared Function Equals(ByVal persona1 As ClaseUsuario, ByVal persona2 As ClaseUsuario) As Boolean
        Return persona1.Nick = persona2.Nick And persona1.Contraseña = persona2._Contraseña
    End Function


    Public ReadOnly Property NombreUsuario As String
        Get
            Return _Nick
        End Get
    End Property

    Public Sub SumarPuntos(ByVal Juego As Integer, ByVal Puntos As Integer)
        MiJuego.UsuarioActual._Puntuaciones(Juego) = MiJuego.UsuarioActual._Puntuaciones(Juego) + Puntos
    End Sub
    Public ReadOnly Property PuntuacionBuscaminas As Integer
        Get
            Return _Puntuaciones(0)
        End Get
    End Property
    Public ReadOnly Property PuntuacionSnake As Integer
        Get
            Return _Puntuaciones(1)
        End Get
    End Property
    Public ReadOnly Property PuntuacionParejas As Integer
        Get
            Return _Puntuaciones(2)
        End Get
    End Property
    Public ReadOnly Property PuntuacionPacman As Integer
        Get
            Return _Puntuaciones(3)
        End Get
    End Property



End Class
